Date : 06 avril 1993
Protection : MOT DE PASSE
Programme : DRAGON'S LAIR: ESC. FROM SINGE's CASTLES
Outils : SOFT-ICE V2.50
Fichier : DLESCAP2.DAT
Temps pass� : 25 MINUTES
Soci�t� : READY SOFT
Divers :
Origine : B.Y.
Num�ro : 210
Je pensais que la d�protection n'offrirait aucun probl�me vu
l'exp�rience acquise sur DRAGON'S LAIR 1 et 2, mais je me suis
tromp�. Tout �volue, surtout les protections.
On arrive facilement � trouver le CALL far qui s'occupe de la
demande du mot de passe. Mais par contre l'endroit o� le soft
teste le mot de passe entr� est impossible � d�couvrir.
La seule indication est le reset du PC lors du passage du tableau
num�ro 1 au tableau suivant. Malgr� la d�couverte du CALL "reseteur"
tellement de tests sont effectu�s avant qu'il est impossible de
trouver quelle voie choisir. D'ailleurs en passant je crois avoir
d�couvert quel octet modifier pour mettre 255 vies au lieu des 3
propres � chaque tableau. ( � voir )
Il reste la solution du "pistage" des caract�res tap�s au clavier.
En d'autres termes il faut voir ce qu'en fait le programme: o� ils sont
rang�s, quand est ce qu'ils sont test�s, et par quelle routine.
Tout un programme...
Heureusement moins difficile que pr�vu. Les caract�res sont test�s
par l'INT 21 sf 08 puis affich�s par l'INT 10 sf 02.
Ils sont rang�s en DS:SI de 1BAB:0A43 � DS:0A48 ( 5 caract�res ).
Il suffit de mettre un point d'arr�t en DS:SI en lecture avec:
BPMB DS:0A43 R
A ce moment on tombe dans une routine qui additionne ces caract�res et
leur fait faire des XOR etc... pour mettre le r�sultat final dans la
position DS:076E.
Cette position est compar�e par l'interm�diaire des deux registres SI
et DI. Si diff�rent on plante le syst�me sinon on "RETFAR" pour passer
� la suite. Et en fait je me suis aper�u qu'� chaque nouveau tableau
cette position �tait retest�.
CS=6131
CS:0039 3B3C CMP DI,[SI] ; COMPARE LES DEUX REGISTRES.
CS:003B 7501 JNZ 003E ; A NOPER PAR 9090.
CS:003D CB RETF ; SI OK
CS:003E 8CD3 MOV BX,SS ; ON PREPARE LE PLANTAGE.
Avec PCTOOLS chercher: 3B3C7501CB8CD3
et modifier : ....9090......
FREDDY
|